package net.neptech.service;

import net.neptech.bo.AddStaffBo;
import net.neptech.bo.StaffBo;
import net.neptech.bo.StaffInfoBo;
import net.neptech.dto.sys.StaffDTO;
import net.neptech.model.sys.Staff;
import net.neptech.page.PageQuery;
import net.neptech.page.TableDataInfo;
import net.neptech.vo.DeptStaffVo;
import net.neptech.vo.StaffVo;

import java.util.List;

public interface StaffService {
    List<StaffDTO> getExpert();

    List<StaffDTO> getStaff();

    List<StaffDTO> getStaffByDeptId(Long deptId);

    List<Staff> getByDeptId(Long deptId);

    Staff getStaffInfoByUserId(Long userId);

    List<DeptStaffVo> getStaffByStaffId(List<Long> staffId);

    TableDataInfo<StaffVo> selectPageUserList(StaffBo staffBo, PageQuery pageQuery);

    StaffVo selectStaffById(Long staffId);

    void updateStaffInfo(StaffInfoBo staffInfoBo);

    void insertStaff(AddStaffBo addStaffBo);

    StaffDTO getOneByUserId(Long userId);

    List<Long> getIdsByDeptIds(List<Long>  deptIds);

    List<Long> getIdsByRoleIds(List<Long> roleIds);

    List<StaffDTO> searchByName(String userName);

//    Staff selectStaffById(Long staffId);
}
